Radio transmission is subject to short term amplitude variations when transmitting and receiving antennas are not within direct sight of each other. In this situation, the received signal is the sum of a number of reflected copies of the transmitted signal, each having a different phase. The sum of such randomly phased-shifted signals may vary with time, due to movement of reflecting objects or movement of the transmitting and/or receiving antennas. The resulting amplitude variations are known as Rayleigh fading.
A further source of interference, particularly in a cellular radio telephony network, results from a large number of users operating on a small number of frequencies which are re-used in different geographical areas known as cells. When a large number of users of such a network are operating simultaneously, it is possible for interference to result from calls made on the same frequency in another cell. Interference with radio transmissions may additionally be caused by atmospheric conditions and random electro-magnetic interference caused by certain types of electrical equipment.
When transmitting data using a radio communication link, it is necessary to provide a degree of immunity to such interference, so that for an expected level of interference, errors in data transmission may be correctable at the receiver without undue interruption of data communication.
Data coding consists of adding redundant information to source data in such a way that errors in a received encoded data stream may be identified and corrected. The degree of redundancy that is added determines the number of errors in the received signal that may be corrected, before an uncorrectable level of data interference occurs. Typical coding techniques identify and correct individual bit errors in data streams, however, these techniques do not provide resistance to errors that occur in bursts. In order to overcome this difficulty the coded data may be interleaved, such that consecutive data bits are spread out in time and interleaved with other data bits that have been delayed from previous parts of the same data signal.
Thus a continuous burst error imposed upon this type of interleaved data signal does not affect contiguous bits from the original data stream, and after de-interleaving the received coded data will have bit errors that are spread out over time and which are correctable using the redundant data that was added at the data coding stage.
Interleaving may be performed to a depth according to the needs of the data signal being sent. Thus data signals that can tolerate an occasional bit error may be interleaved over shorter periods of time than data signals that have a lower error tolerance. Generally, in a digital radio telephony network, speech signals transmitted as data can tolerate occasional losses, whereas data transmitted from a computer over the same radio link, which may be used to convey important information, such as financial data, etc., should be transmitted with the fewest number of possible errors.
In the case of data being transmitted over a radio telephony network from a computer, a greater depth of interleaving may be used. A greater depth of interleaving implies a longer delay time for certain parts of the original data signal before it is actually transmitted. The delayed data must be stored in a memory or buffer, and the amount of memory used for the process of data interleaving may be great enough to significantly affect the price and power consumption of the equipment in which the interleaving process is to take place. This constraint is particularly applicable to mobile battery powered systems, such as hand-held GSM (Global system for module communication) telephones.
In known systems, interleaving and de-interleaving are achieved by providing a sufficient data memory to store any data bit over the maximum length of time imposed by the interleaving process. However this is wasteful, as the data supplied to the interleaving process is delayed by different times according to its eventual position in the interleaved bit stream output which is eventually transmitted. Thus known systems for interleaving and de-interleaving do not provide the full degree of efficiency that is theoretically implied by the variable timing characteristic of the interleaving or de-interleaving process.